/**
 * Copyright &copy; 2013-2015 山东易科德软件有限公司   All rights reserved.
 */
package cn.net.ecode.modules.sys.dao;

import java.util.List;

import cn.net.ecode.common.persistence.TreeDao;
import cn.net.ecode.common.persistence.annotation.MyBatisDao;
import cn.net.ecode.modules.sys.entity.Company;

/**
 * 公司管理DAO接口
 * @author 冯伟
 * @version 2014-06-03
 */
@MyBatisDao
public interface CompanyDao extends TreeDao<Company> {
	
	/**
	 * 获取当前机构下的启用机构列表
	 * @param company
	 * @return
	 */
	public List<Company> getEnabledList(Company company);

	/**
	 * 停用当前节点
	 * @param company
	 * @return
	 */
	public int disable(Company company);

	/**
	 * 停用当前节点和子节点
	 * @param company
	 * @return
	 */
	public int disableByGroup(Company company);

	/**
	 * 启用当前节点
	 * @param company
	 * @return
	 */
	public int enable(Company company);

	/**
	 * 启用当前节点和子节点
	 * @param company
	 * @return
	 */
	public int enableByGroup(Company company);
	
	/**
	 * 匹配组织和公司的关联
	 * @param company
	 * @return
	 */
	public int insertOfficesOfCompany(Company company);
	
	/**
	 * 删除组织和公司的关联
	 * @param company
	 * @return
	 */
	public int deleteOfficesOfCompany(Company company);
	
	/**
	 * 获取组织和公司的关联
	 * @param company
	 * @return
	 */
	public List<Company> selectOfficesOfCompany(Company company);
	
	/**
	 * 根据组织机构编码查询所属公司信息
	 * @param company
	 * @return
	 */
	public List<Company> findCompanyByOfficeCode(Company company);
	
}